import { Login } from "@/api/interface/index";
import { BASE } from "@/api/config/servicePort";
// import authMenuList from "@/assets/json/authMenuList.json";
import authButtonList from "@/assets/json/authButtonList.json";
import http from "@/api";
// import { UnwrapRef } from "vue";

/**
 * @name 登录模块
 */
// 用户登录
// export const loginApi = (params: {
//   password: string | number[];
//   username: string;
//   // username: "username" extends symbol ? Login.ReqLoginForm["username"] : UnwrapRef<Login.ReqLoginForm["username"]>;
// }) => {
//   return http.post<Login.ResLogin>(BASE + `/auth/login/`, params, { loading: false }); // 正常 post json 请求  ==>  application/json
//   // return http.post<Login.ResLogin>(PORT1 + `/login`, params, { loading: false }); // 控制当前请求不显示 loading
//   // return http.post<Login.ResLogin>(PORT1 + `/login`, {}, { params }); // post 请求携带 query 参数  ==>  ?username=admin&password=123456
//   // return http.post<Login.ResLogin>(PORT1 + `/login`, qs.stringify(params)); // post 请求携带表单参数  ==>  application/x-www-form-urlencoded
//   // return http.get<Login.ResLogin>(PORT1 + `/login?${qs.stringify(params, { arrayFormat: "repeat" })}`); // get 请求可以携带数组等复杂参数
// };
export const loginApi = (params: Login.ReqLoginForm) => {
  return http.post<Login.ResLogin>(BASE + `/auth/login/`, params, { loading: false }); // 正常 post json 请求  ==>  application/json
};

// 获取菜单列表
export const getAuthMenuListApi = (params?) => {
  if (params) {
    return http.get<Menu.MenuOptions[]>(BASE + `/menu/?s=` + params, {}, { loading: false });
  } else {
    return http.get<Menu.MenuOptions[]>(BASE + `/menu/`, {}, { loading: false });
  }
  // 如果想让菜单变为本地数据，注释上一行代码，并引入本地 authMenuList.json 数据
  // return authMenuList;
};

// 获取按钮权限
export const getAuthButtonListApi = () => {
  // return http.get<Login.ResAuthButtons>(PORT1 + `/auth/buttons`, {}, { loading: false });
  // 如果想让按钮权限变为本地数据，注释上一行代码，并引入本地 authButtonList.json 数据
  return authButtonList;
};

// 获取权限
export const getPermissionsListApi = () => {
  return http.get<object>(BASE + `/permission/`, {}, { loading: false });
  // 如果想让按钮权限变为本地数据，注释上一行代码，并引入本地 authButtonList.json 数据
  // return authButtonList;
};

// 用户退出登录
export const logoutApi = () => {
  return http.post(BASE + `/proxy/auth/logout`);
};
